package com.icinfo.cloud.provider.punish.ucase.punishexecute.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @Description 申请延期（分期）缴纳罚款实体类
 * @Author mahan
 * @Date 2022/9/20
 * @Version 1.0
 */
@Data
@Table(name = "upcase.case_delay_installment_pay_fine")
public class CaseDelayInstallmentPayFine implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Column(name = "id")
    private String id;

    /**
     * 案件ID
     */
    @Column(name = "case_id")
    private String caseId;

    /**
     * 分期（延期）类型：1、延期，2、分期
     */
    @Column(name = "delay_installment_type")
    private String delayInstallmentType;

    /**
     * 分期期数：2-24，整数
     */
    @Column(name = "installment_number")
    private Integer installmentNumber;

    /**
     * 分期缴纳开始月份（yyyy-MM）：不能小于当前月份
     */
    @Column(name = "installment_start_pay_month")
    private String installmentStartPayMonth;

    /**
     * 无法除尽金额归属（罚款金额除以分期数的余数）：1、第一期，2、最后一期
     */
    @Column(name = "installment_remainder_type")
    private String installmentRemainderType;

    /**
     * 延期罚款截止日期（年月日）
     */
    @Column(name = "delay_pay_date")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private LocalDate delayPayDate;

    /**
     * 每月缴纳日类型：1、每月第一日，2、每月最后一日，3、自定义
     */
    @Column(name = "installment_pay_day_type")
    private String installmentPayDayType;

    /**
     * 自定义分期缴纳日期（每月几号）
     */
    @Column(name = "installment_pay_custom_day")
    private Integer installmentPayCustomDay;

    /**
     * 缴纳罚款总金额
     */
    @Column(name = "installment_pay_total_amount")
    private String installmentPayTotalAmount;

    /**
     * 创建时间
     */
    @Column(name = "create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime createTime;

    /**
     * 创建人ID
     */
    @Column(name = "create_user_id")
    private String createUserId;

    /**
     * 创建人姓名
     */
    @Column(name = "create_user_name")
    private String createUserName;

    /**
     * 修改时间
     */
    @Column(name = "update_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime updateTime;

    /**
     * 修改人ID
     */
    @Column(name = "update_user_id")
    private String updateUserId;

    /**
     * 修改人姓名
     */
    @Column(name = "update_user_name")
    private String updateUserName;

    /**
     * 当事人ID
     */
    @Column(name = "party_id")
    private String partyId;
}
